package de.hdu.tennis.dao;


import de.hdu.tennis.model.Tennisplatz;
import java.util.Date;
import org.apache.log4j.Logger;

/**
 * Testclass for TennisplatzDao
 * @see TennisplatzDao
 * @author Lilli Kardapolzew, Katharina Weber, Carolina Hirtreiter
 */
public class TennisplatzDaoTest extends AbstractDataAccessTest {
    
    private TennisplatzDao    tennisplatzDao;
    private Tennisplatz tennisplatz1;
    private Tennisplatz tennisplatz2;
    
    private String      tableName = "tbl_tennisplatz";
//    private static Logger log = Logger.getLogger(TennisplatzDaoTest.class);
//    
//    public TennisplatzDaoTest() {
//    }
    
    @Override
protected void onSetUpBeforeTransaction() {
//        log.info("Initialisierung TennisplatzObjekte");
    	
    	String[] tables = { tableName };
    	deleteFromTables(tables);
    	
        tennisplatz1 = new Tennisplatz();
        tennisplatz1.setBelegt(false);
        tennisplatz1.setZustand("Ok");
        tennisplatz1.setName("Platz1");
       

        tennisplatz2 = new Tennisplatz();
        tennisplatz2.setBelegt(true);
        tennisplatz2.setZustand("ok");
        tennisplatz2.setName("Platz2");
        tennisplatz2.setStart(new Date(System.currentTimeMillis()));
}
    
    
    /**
     * Test of save method, of class TennisplatzDao.
     */
    @SuppressWarnings("deprecation")
	public void testSave() {
        logger.info("Save");
        getTennislatzDao().save(tennisplatz1);
        assertEquals("Die Tabelle muss einen Eintrag enthalten", 1, countRowsInTable(tableName));
    }

    /**
     * Test of findAll method, of class TennisplatzDao.
     */
    @SuppressWarnings("deprecation")
	public void testFindAll() {
        logger.info("FindAll");
        getTennislatzDao().save(tennisplatz1);
        getTennislatzDao().save(tennisplatz2);
        assertEquals("Es m�ssen 2 Tennispl�tze vorhanden sein", 2, tennisplatzDao.findAll().size());
    }
/*
    *//**
     * Test of delete method, of class TennisplatzDao.
     *//*
    @SuppressWarnings("deprecation")
	public void testDelete() throws Exception {
        logger.info("delete");
        tennisplatzDao.save(tennisplatz1);
        tennisplatzDao.delete(tennisplatz1);
        assertNull("Tennisplatz 1 darf nicht mehr vorhanden sein",tennisplatzDao.findById(tennisplatz1.getId()));
    }*/

    /**
     * Test of findById method, of class TennisplatzDao.
     */
    @SuppressWarnings("deprecation")
	public void testFindById() {
         logger.info("findById");
        Tennisplatz tmp = tennisplatzDao.save(tennisplatz1);
        int idTennisplatz = tmp.getId();
        assertNotNull(tennisplatzDao.findById(idTennisplatz));
    }

    /**
     * Test of getBelegteTennisplatz method, of class TennisplatzDao.
     */
//    @SuppressWarnings("deprecation")
//	public void testGetBelegteTennisplatz() {
//         logger.info("GetBelegteTennispl�tze");
//         tennisplatzDao.save(tennisplatz1);
//         tennisplatzDao.save(tennisplatz2);
//         assertEquals("Es muss ein Tennisplatz belegt sein", 1, tennisplatzDao.getBelegteTennisplatz().size());
//    }

    /**
     * @return the tennisplatzhDao
     */
    public TennisplatzDao getTennislatzDao() {
        return tennisplatzDao;
    }

    /**
     * @param tennisplatzDao the tennisplatzDao to set
     */
    public void setTennisplatzDao(TennisplatzDao tennisplatzDao) {
        this.tennisplatzDao = tennisplatzDao;
    }
}